14. Java Object Serialization
Java Object Serialization
In this section, you will learn how to use Java's built-in serialization mechanism.
ND079 JPND C2 L02 A15 Serializing Data In Java
What is Serialization?
Serialization is the process of converting an object into a data format that can later be deserialized back into the original object.
To serialize the Java object, create an ObjectOutputStream
, and pass the object to the streams writeObject()
method. The ObjectOutputStream
writes a sequence of bytes, and its constructor takes another stream as an argument.
To recreate the original Java object from the serialized bytes, read the bytes back into a ObjectInputStream
.
Example
Here's a really bare-bones example demonstrating the basic procedure to serialize and deserialize a Java object:
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
public final class Main {
public static void main(String[] args) throws Exception {
Path path = Path.of("list.bin");
try (var out = new ObjectOutputStream(Files.newOutputStream(path))) {
out.writeObject(List.of("Hello", " ", "World!"));
}
try (var in = new ObjectInputStream(Files.newInputStream(path))) {
List<String> deserialized = (List<String>) in.readObject();
System.out.println(deserialized);
}
}
}
This program prints the following:
[Hello, , World!]
This was kind of a silly example, though, because you would never serialize a list of strings like this — instead, you would probably write the strings to a regular text file with one line per string.
The Java Object Serialization Exercise on the next page has a slightly more realistic example for you to try out.
SOLUTION:
- To save its contents to file.
- To send it over a network.